package com.cskaoyan.basic._4scanner;

import java.util.Scanner;

/**
 * 如何解决录入混用数据类型时的nextLine方法接收不到数据的情况??
 * 解决的办法有很多种：
 *      1.可以使用不同的Scanner对象接收，这样肯定不存在冲突问题(不推荐)
 *      2.在接收int数据的后面加一个不接收数据的nextLine用来接收回车(可以,但是有点笨)
 *      3.用next()方法接收字符串，但是需要注意该方法以分隔符结束，不再是接收一行了
 *      4.可以统一用字符串接收数值类型，接收完毕后再进行类型转换。（具体怎么做，可以自行百度一下）
 *      例如转换成int类型（传入一个字符串，转换成int接收即可)
 *      第四种是推荐的写法,既然混用有问题,那我就不混用了
 *      直接永远使用nextLine方法
 *
 *
 *  总之,建议:
 *      大家在做键盘录入时,如果没有混用录入数据类型的需求,那就该用哪个方法就会哪个
 *      但是如果有混合录入String,int,double等的需求时
 *          就建议永远使用一个方法,叫nextLine
 *
 * @since 11:48
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 分别键盘录入int,String,double
        System.out.println("请输入一个int整数:");
        String intNumStr = sc.nextLine();
        // 包装类型
        int num = Integer.parseInt(intNumStr);
        System.out.println("请输入一个字符串:");
        String str = sc.nextLine();
        System.out.println("请输入一个double小数:");
        String doubleNumStr = sc.nextLine();
        // 包装类型
        double doubleNum = Double.parseDouble(doubleNumStr);

        System.out.println(num);
        System.out.println(str);
        System.out.println(doubleNum);
    }
}
